GN
GREAT NEWS: Evolutionary Design Explained= Evolutionary Computer Blueprints based on and inspired by Sun Microsystem's [[wikipedia:NeWS|NeWS]] (Network extensible Windowing System), Ivor Catt's [[wikipedia:Ivor_Catt#Wafer scale integration|Kernel Logic Machine]] and The [[TOC|Theory of Concurrency]]. * '''G'''uaranteed * '''R'''eliable * '''E'''fficient * '''A'''ffordable * '''T'''estable * '''N'''etwork * '''E'''xtensible * '''W'''orkflow and '''W'''indowing * '''S'''ystems Glossary This Glossary forms the basis for the Universal Language of Evolutionary Design. Precision in language is crucial for the Clarity of Ideas. However no matter how precise a language is it is the Behaviour that it causes that is Most Important. '''Algebra''': A System of Transformations that preserves Entropy. Algebraic Systems are non-destructive. '''Closed System''': Any system that cannot fully observe itself. In a closed system there are not enough names to describe everything. '''Computer''': A ''Mechanical Algebraic Machine''. '''Entropy''': A Measure of Randomness. The higher the Entropy of a system the more Random the System is. '''Evolutionary Design''': '''Image''': The Universal Type. '''Machine''': An Artifical Creation of Mankind. '''Missile''': A machine with One Objective. '''Processor''': The Foundation of all Concrete Objects. An Active Processor can Peek other Active or Passive Processors. Passive Processors cannot Peek. '''Universal Language''': The Language used in Evolutionary Design. Designing Scalable Systems The most important attribute for a component of a scalable system is that the component is reliable. If we have a very large system of the order of 10^{14} components then if the components are reliable all we need to know of a component is whether it is communicatiing or not. A component that does not '''??communicate!!''' is '''KILLED!!''' and replaced. Principles of Scalable System Design Scalable systems are designed or evolved in the field. * Never delay a decision. * Time is against you. * Don't log success. * Be as quiet as possible, i.e. don't generate noise. ** Be careful not to get killed!! * Fail Fast * Resolve issues locally ** In both space and time. * Only talk to your neighbours. * View exceptions as noise. * Don't permit NULLs. NOTE: * Logging breaks encapsulation. TEA: Trusted Evolutionary Architectures * Theory * Eager Queue Protocol * Adaptable Processor Systems Closed Systems Any closed system has the following structure. The Charcters have the following definitions: : \begin{array}{rcl} \mathrm{E} & \equiv & \mathrm{Environment} \\ \mathrm{O} & \equiv & \mathrm{Observer} \\ \mathrm{U} & \equiv & \mathrm{Universe} \\ \mathrm{A} & \equiv & \mathrm{Action} \\ \mathrm{I} & \equiv & \mathrm{Image} \end{array} Sense Boundary Experience Memory Feed Back and Feed Forward * Analog systems run close to the speed of light. * Clocked (gated) digital system always run late. * Unclocked (asynchronous) digital systems can be treated like analog systems. ** Inverter gates will oscillate if allowed to. One use of feedback in analog circuits is to compensate for component aging. Digital software does not age. Software does not fail or more accurately software does not age. Feedback does not improve semantic errors in software systems, in fact it degrades performance, feed forward cross checking is required to compensate for programmer error. Unclocked digital systems are veru difficult to design due to race conditions etc. A mid point between unclocked and clocked systems is self clocking systems that use pull and push control mechanisms. Impedance A Critique of Pair Programmer Two Minds Beating As One? Familiarity Breads Consent Pair Programming Favours Clones What Does a Mock Mock? Challenge, Response, Check - Three Minds - Head Against Head Against Head Trees, Woods and Forests